package day8;

import java.util.Scanner;

public class 字母收集 {
	//dp[i][j]：到[i,j]位置能得到的最大分数
	//状态转移方程：
	// dp[i][j]=max(dp[i-1][j],dp[i][j-1])+分数
	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		// 注意 hasNext 和 hasNextLine 的区别
		while (in.hasNext()) { // 注意 while 处理多个 case
			int m = in.nextInt();
			int n = in.nextInt();
			char[][] str=new char[m][n];
			for(int i=0;i<m;i++){
				String s=in.next();
				for(int j=0;j<s.length();j++){
					str[i][j]=s.charAt(j);
				}
			}
			int[][] dp=new int[m+1][n+1];
			for(int i=1;i<=m;i++){
				for(int j=1;j<=n;j++){
					int scroce=0;
					if(str[i-1][j-1]=='l'){
						scroce=4;
					}
					else if(str[i-1][j-1]=='o'){
						scroce=3;
					}
					else if(str[i-1][j-1]=='v'){
						scroce=2;
					}
					else if(str[i-1][j-1]=='e'){
						scroce=1;
					}
					dp[i][j]=Math.max(dp[i-1][j],dp[i][j-1])+scroce;
				}
			}
			System.out.println(dp[m][n]);
		}
	}
}
